home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / machserver / include / lfs.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-02  |  3.6 KB  |  103 lines

  1. /*
  2.  * lfs.h --
  3.  *
  4.  *    Declarations of data structures and routines of the LFS file system
  5.  *    exported to the rest of the Sprite file system. 
  6.  *
  7.  * Copyright 1989 Regents of the University of California
  8.  * Permission to use, copy, modify, and distribute this
  9.  * software and its documentation for any purpose and without
  10.  * fee is hereby granted, provided that the above copyright
  11.  * notice appear in all copies.  The University of California
  12.  * makes no representations about the suitability of this
  13.  * software for any purpose.  It is provided "as is" without
  14.  * express or implied warranty.
  15.  *
  16.  * $Header: /r3/kupfer/spriteserver/include/RCS/lfs.h,v 1.2 91/12/01 22:16:11 kupfer Exp $ SPRITE (Berkeley)
  17.  */
  18.  
  19. #ifndef _LFS
  20. #define _LFS
  21.  
  22. #include <sprite.h>
  23. #ifdef SPRITED_LOCALDISK
  24. #include <fsdm.h>
  25. #endif
  26.  
  27. /*
  28.  * Flags controlling file system.
  29.  * LFS_CONTROL_CLEANALL - When cleaning, clean all dirty segments.
  30.  */
  31. #define    LFS_CONTROL_CLEANALL    0x1
  32.  
  33. /* Descriptor management routines. */
  34.  
  35. #ifdef SPRITED_LOCALDISK
  36. extern ReturnStatus Lfs_GetNewFileNumber _ARGS_((Fsdm_Domain *domainPtr, 
  37.         int dirFileNum, int *fileNumberPtr));
  38. extern ReturnStatus Lfs_FreeFileNumber _ARGS_((Fsdm_Domain *domainPtr, 
  39.         int fileNumber));
  40. extern ReturnStatus Lfs_FileDescStore _ARGS_((register Fsdm_Domain *domainPtr,
  41.         Fsio_FileIOHandle *handlePtr, int fileNumber, 
  42.         Fsdm_FileDescriptor *fileDescPtr, Boolean forceOut));
  43. extern ReturnStatus Lfs_FileDescFetch _ARGS_((Fsdm_Domain *domainPtr, 
  44.         int fileNumber, Fsdm_FileDescriptor *fileDescPtr));
  45. extern ReturnStatus Lfs_FileDescInit _ARGS_((Fsdm_Domain *domainPtr, 
  46.         int fileNumber, int type, int permissions, int uid, int gid,
  47.         Fsdm_FileDescriptor *fileDescPtr));
  48. /*
  49.  * Startup and shutdown routines. 
  50.  */
  51. extern ReturnStatus Lfs_AttachDisk _ARGS_((Fs_Device *devicePtr, 
  52.             char *localName, int flags, int *domainNumPtr));
  53. extern ReturnStatus Lfs_DetachDisk _ARGS_((Fsdm_Domain *domainPtr));
  54. extern ReturnStatus Lfs_DomainWriteBack _ARGS_((Fsdm_Domain *domainPtr, 
  55.             Boolean shutdown));
  56. extern ReturnStatus Lfs_RereadSummaryInfo _ARGS_((Fsdm_Domain *domainPtr));
  57. extern ReturnStatus Lfs_DomainInfo _ARGS_((Fsdm_Domain *domainPtr, 
  58.             Fs_DomainInfo *domainInfoPtr));
  59. /*
  60.  * File I/O and allocate routines. 
  61.  */
  62. extern ReturnStatus Lfs_FileBlockRead _ARGS_((Fsdm_Domain *domainPtr, 
  63.             register Fsio_FileIOHandle *handlePtr, 
  64.             Fscache_Block *blockPtr));
  65. extern ReturnStatus Lfs_FileBlockWrite _ARGS_((Fsdm_Domain *domainPtr, 
  66.             Fsio_FileIOHandle *handlePtr, Fscache_Block *blockPtr));
  67. extern ReturnStatus Lfs_BlockAllocate _ARGS_((Fsdm_Domain *domainPtr, 
  68.             register Fsio_FileIOHandle *handlePtr, int offset, 
  69.             int numBytes, int flags, int *blockAddrPtr, 
  70.             Boolean *newBlockPtr));
  71. extern ReturnStatus Lfs_FileTrunc _ARGS_((Fsdm_Domain *domainPtr, 
  72.             Fsio_FileIOHandle *handlePtr, 
  73.             int size, Boolean delete));
  74.  
  75. /*
  76.  * Directory routines.
  77.  */
  78. extern ClientData Lfs_DirOpStart _ARGS_((Fsdm_Domain *domainPtr, int opFlags, 
  79.             char *name, int nameLen, int fileNumber, 
  80.             Fsdm_FileDescriptor *fileDescPtr, int dirFileNumber, 
  81.             int dirOffset, Fsdm_FileDescriptor *dirFileDescPtr));
  82. extern void Lfs_DirOpEnd _ARGS_((Fsdm_Domain *domainPtr, ClientData clientData,
  83.             ReturnStatus status, int opFlags, char *name, 
  84.             int nameLen, int fileNumber, 
  85.             Fsdm_FileDescriptor *fileDescPtr, int dirFileNumber, 
  86.             int dirOffset, Fsdm_FileDescriptor *dirFileDescPtr));
  87.  
  88.  
  89. extern void Lfs_Init _ARGS_((void));
  90. extern ReturnStatus Lfs_Command _ARGS_((int command, int bufSize, 
  91.                        Address buffer));
  92. #else /* SPRITED_LOCALDISK */
  93.  
  94. /* 
  95.  * "Return" an error code if somebody tries to invoke Lfs_Command. 
  96.  */
  97. #define Lfs_Command(command, bufSize, buffer)    FS_INVALID_ARG
  98.  
  99. #endif
  100.  
  101. #endif /* _LFS */
  102.  
  103.